///
/// Copyright © 2016-2025 The Thingsboard Authors
///
/// Licensed under the Apache License, Version 2.0 (the "License");
/// you may not use this file except in compliance with the License.
/// You may obtain a copy of the License at
///
///     http://www.apache.org/licenses/LICENSE-2.0
///
/// Unless required by applicable law or agreed to in writing, software
/// distributed under the License is distributed on an "AS IS" BASIS,
/// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
/// See the License for the specific language governing permissions and
/// limitations under the License.
///

import { IAliasController } from '@core/api/widget-api.models';
import { WidgetConfigCallbacks } from '@home/components/widget/config/widget-config.component.models';
import { DataKey, Widget, widgetType } from '@shared/models/widget.models';
import { Observable } from 'rxjs';

export interface MapSettingsContext {
  functionsOnly: boolean;
  aliasController: IAliasController;
  callbacks: WidgetConfigCallbacks;
  widget: Widget;
  editKey: (key: DataKey, deviceId: string, entityAliasId: string, WidgetType?: widgetType) => Observable<DataKey>;
  generateDataKey: (key: DataKey) => DataKey;
}
